package gate

import (
	proto "leafserver/src/pb/go"
	"leafserver/src/service-wsTcp/controller/login"
	"leafserver/src/service-wsTcp/msg"
)

// Leaf 可以单独使用 TCP 协议或 WebSocket 协议，也可以同时使用两者
/**
<script type="text/javascript">
var ws = new WebSocket('ws://127.0.0.1:3653')

ws.onopen = function() {
    // 发送 Hello 消息
    ws.send(JSON.stringify({Hello: {
        Name: 'leaf'
    }}))
}
</script>
// tcp
package main

import (
	"encoding/binary"
	"net"
)
func main() {
	conn, err := net.Dial("tcp", "127.0.0.1:3563")
	if err != nil {
		panic(err)
	}
	// Hello 消息（JSON 格式）
	// 对应游戏服务器 Hello 消息结构体
	data := []byte(`{
		"Hello": {
			"Name": "leaf"
		}
	}`)
	// len + data
	m := make([]byte, 2+len(data))
	// 默认使用大端序
	binary.BigEndian.PutUint16(m, uint16(len(data)))
	copy(m[2:], data)
	// 发送消息
	conn.Write(m)
}
*/
func init() {
	// 这里指定消息 Hello 路由到 game 模块
	// 模块间使用 ChanRPC 通讯，消息路由也不例外
	msg.Processor.SetRouter(&proto.UserLoginWebReq{}, login.ChanRPC)
}
